package cc2_XML_write;

import java.io.File;
import java.io.FileWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

	public class CrearOrdenCompraProvXML{
		
		Document doc;
		static final String ARCHIVO = "OCProv.xml";
		void newDomXML() {
		    try{
		    	//Variables:
		    	String numeroOCProv="nro orden de compra proveedor";
		    	String fechaEmision="fecha de emision";
		    	String clienteNroCuil="cuil";
		    	String clienteRazonSocial="rs";
		    	
		    	//Crea instancia de DocumentBuilderFactory
		        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		        //obtiene objeto DocumentBuilder
		        DocumentBuilder docBuilder = factory.newDocumentBuilder();
		        //Crea documento DOM en blanco
		        	doc = docBuilder.newDocument();
		        //crea el elemento raiz y lo agrega al documento
		            Element root = doc.createElement("OCProv");
		            root.setAttribute("numero",numeroOCProv);
		            doc.appendChild(root);

		        //crea elemento hijo
		            Element hijoFecha = doc.createElement("Fecha");
		        //agrega un atributo al elemento y le asigna un valor
		            //hijo.setAttribute("id","id01");
		            root.setTextContent(fechaEmision);
		            root.appendChild(hijoFecha);
	     		            	           
		            Element hijoCliente = doc.createElement("Cliente");
		            hijoCliente.setTextContent("Cliente");
		            root.appendChild(hijoCliente);
		            
		            Element hijoCuil = doc.createElement("Cuil");
		            //hijo.setAttribute("id","id02");
		            hijoCuil.setTextContent(clienteNroCuil);
		            hijoCliente.appendChild(hijoCuil);
		            
		            Element hijoRS = doc.createElement("RazonSocial");
		            //hijo.setAttribute("id","id02");
		            hijoRS.setTextContent(clienteRazonSocial);
		            hijoCliente.appendChild(hijoRS);
		                  
		            Element hijoRodamientos=doc.createElement("Rodamientos");
		            hijoRodamientos.setTextContent("");
		            root.appendChild(hijoRodamientos);
		            
		            //WHILE X CADA ITEM
		            
		            //Variables:
		            String itemNumeroSerie="numero de serie";
		            String itemSufijo="valor sufijo";
		            String itemMarca="marca1";
		            String itemOrigen="PaisOrigen";
		            String itemCantidad="cantidad";
		            
		            Element hijoItem=doc.createElement("Item");
		            hijoItem.setAttribute("serie",itemNumeroSerie);
		            hijoItem.setAttribute("sufijo", itemSufijo);
		            hijoRodamientos.appendChild(hijoItem);
		            
		            Element hijoItemMarca=doc.createElement("Marca");
		            hijoItemMarca.setTextContent(itemMarca);
		            hijoItem.appendChild(hijoItemMarca);
		            
		            Element hijoItemOrigen=doc.createElement("Origen");
		            hijoItemOrigen.setTextContent(itemOrigen);
		            hijoItem.appendChild(hijoItemOrigen);            
		            
		            Element hijoItemCantidad=doc.createElement("Cantidad");
		            hijoItemCantidad.setTextContent(itemCantidad);
		            hijoItem.appendChild(hijoItemCantidad);
		            
		            
		            //FIN WHILE.
		            
		    }catch(Exception e){
		    	System.out.println(e.getMessage());
		    }
		}
		        
		void saveDomXML() {
			//Crea instancia de TransformerFactory
		    TransformerFactory tranFactory = TransformerFactory.newInstance(); 
		    Transformer tran;
			try {
				//Crea un objeto Transformer
				tran = tranFactory.newTransformer();
				//interface Source implementada con un documento dom 
			    Source src = new DOMSource(doc); 
			    //interface Result implementada con un subtipo de OutputStream 
			    Result dest = new StreamResult(new FileWriter(new File(ARCHIVO)));
			    //m?todo transform que enlaza el documento con el stream
			    tran.transform(src, dest); 
			    System.out.print("archivo creado: " + ARCHIVO);
			} catch (Exception e) {
				e.printStackTrace();
			} 
		}
		
		public static void main(String[] args) {
			CrearOrdenCompraProvXML ins = new CrearOrdenCompraProvXML();
			ins.newDomXML();
			ins.saveDomXML();
		}

	}
